package com.itheima.pattern.singleton.demo4;

// 懒汉式
public class Singleton {

    // 1. 私有构造方法
    private Singleton() {
    }

    // 2. 声明Singleton类型的变量instance
    private static Singleton instance; // 只是声明一个该类型的变量，并没有进行赋值

    // 3. 提供公共的访问方式，让外界获取该对象
    public static synchronized Singleton getInstance() {
        // 判断instance是否为null，如果为null，说明还没有创建Singleton类的对象
        // 如果没有，创建一个并返回，如果有，直接返回
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}
